package com.scuec.groupfive.service;

import com.scuec.groupfive.vo.DailyPracticesVO;
import com.scuec.groupfive.vo.AnswerResultVO;

import java.util.List;
import java.util.Map;

/**
 * 每日练习Service接口
 */
public interface DailyPracticesService {

    /**
     * 根据用户ID获取每日练习题目
     * @param userId 用户ID
     * @return 每日练习题目列表
     */
    List<DailyPracticesVO> getDailyPracticesByUserId(Long userId);

    /**
     * 提交每日练习答案
     * @param userId 用户ID
     * @param answers 答案列表
     * @return 批改结果列表
     */
    List<AnswerResultVO> submitAnswers(Long userId, List<Map<String, Object>> answers);

    /**
     * 获取每日练习记录
     * @param userId 用户ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param keyword 关键字
     * @param page 页码
     * @param size 每页大小
     * @return 每日练习记录列表
     */
    List<Map<String, Object>> getDailyPracticeRecords(Long userId, String startDate,
                                                      String endDate, String keyword,
                                                      int page, int size);

    /**
     * 获取练习结果详情
     * @param userId 用户ID
     * @param practiceDate 练习日期
     * @return 练习结果详情列表
     */
    // [file name]: DailyPracticesService.java
    List<AnswerResultVO> getPracticeResults(Long userId, String practiceDate); // 改回日期参数

    /**
     * 更新答题记录的收藏状态
     * @param recordId 答题记录ID
     * @param isFavorite 是否收藏(0-未收藏,1-已收藏)
     * @param userId 用户ID
     * @param questionId 题目ID
     * @return 是否操作成功
     */
    boolean updateFavoriteStatus(Long recordId, int isFavorite, Long userId, Long questionId);

}